/*
   Copyright 2009 Bégaudeau Stéphane

   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
 */

package faneclipse;

import java.util.logging.Level;
import java.util.logging.Logger;

import org.eclipse.ui.plugin.AbstractUIPlugin;
import org.osgi.framework.BundleContext;

/**
 * The activator class controls the plugin life cycle.
 * @author BEGAUDEAU stephane
 */
public class Activator extends AbstractUIPlugin {
	/**
	 * The Plugin ID.
	 */
	public static final String PLUGIN_ID = "FanEclipse";
	
	/**
	 * Name of the partitionning.
	 */
	public static final String FAN_PARTITIONING = "__fan_partitioning";
	
	/**
	 * The logger of the plugin.
	 */
	public static final Logger LOGGER = Logger.getLogger("FanEclipse");
	
	/**
	 * The level of information that the logger will show.
	 */
	private static Level level;
	
	/**
	 * The shared instance.
	 */
	private static Activator plugin;
	
	/**
	 * The constructor.
	 */
	public Activator() {
		super();
		level = Level.INFO;
		LOGGER.setLevel(level);
	}

	/**
	 * @param context A bundle's execution context within the Framework.
	 * @throws Exception An exception if the plugin doesn't start as it should.
	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
	 */
	public final void start(final BundleContext context) throws Exception {
		super.start(context);
		plugin = this;
	}

	/**
	 * @param context A bundle's execution context within the Framework.
	 * @throws Exception An exception if the plugin doesn't stop as it should.
	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
	 */
	public final void stop(final BundleContext context) throws Exception {
		plugin = null;
		super.stop(context);
	}

	/**
	 * Returns the shared instance.
	 * @return the shared instance.
	 */
	public static Activator getDefault() {
		return plugin;
	}

}
